<?php

namespace app\controller;

use app\model\AlbumPhoto;
use app\model\FacesFeature;
use app\model\FacesSta;
use app\process\CalFeature;
use fast\Http;
use think\elastic\facade\Elastic;
use think\facade\Db;
use think\facade\Log;

class Job{
    /**
     * 获取底库图片feature
     * @return void
     */
    public function get_album_feature(){
        $_mqtt_user_manage=new \app\model\MqttUserManage();
        $_mqtt_user_manage->getFeature();
    }


    public function get_album_feature_fail(){
        $_mqtt_user_manage=new \app\model\MqttUserManage();
        $_mqtt_user_manage->getFeatureFail();
    }

    public function compare_feature($id){
        Log::info("异步调用");
        $_face=new \app\model\Faces();
        $_face->compare_feature_real($id);
    }


    /**
     * 获取face表历史feature
     * @return void
     */
    public function get_face_feature() {
        $_face=new \app\model\Faces();
        $_face->get_face_feature();
    }

    public function send_mqtt_user_manage() {
        $_mqtt_user_mange=new \app\model\MqttUserManage();
        $_mqtt_user_mange->send_mqtt_user_manage();
    }



    /**
     * 获取战法底库album_photo特征值
     * @return void
     */
    public function get_albul_photo_feature($id=0){
        $_album_photo=new \app\model\AlbumPhoto();
        $_album_photo->get_album_photo_feature($id);

    }

    /**
     * 执行faces表统计任务,每天统计一次，获取抓拍机每天入库数量以及比中底库的数量
     */
    public function faces_sta(){
        $_faces=new \app\model\Faces();
        $all_faces=Db::query("SELECT YEAR(create_time) years,MONTH(create_time) months,DAY(create_time) days,COUNT(*) count FROM  tp_faces GROUP BY YEAR(create_time),MONTH(create_time),DAY(create_time)  ORDER BY YEAR(create_time) ASC,MONTH(create_time) ASC,DAY(create_time) ASC");
        //$all_faces=$_faces->group('YEAR(create_time),MONTH(create_time),DAY(create_time)')->field('YEAR(create_time) years,MONTH(create_time) months,DAY(create_time) days,COUNT(*) count')->order(['YEAR(create_time)','MONTH(create_time)','DAY(create_time)'])->select();
        //$sta_faeces=$_faces->where('photo_id','<>','')->group('YEAR(create_time),MONTH(create_time),DAY(create_time)')->field('YEAR(create_time) years,MONTH(create_time) months,DAY(create_time) days,COUNT(*) count')->select();
        $sta_faeces=Db::query("SELECT YEAR(create_time) years,MONTH(create_time) months,DAY(create_time) days,COUNT(*) count FROM  tp_faces WHERE photo_id!=''  GROUP BY YEAR(create_time),MONTH(create_time),DAY(create_time)");
        $_sta=new FacesSta();
        $lists=$_sta->column('sta_date');
        if(!$lists)$lists=[];
        //Log::error("sta_faeces数量：".json_encode($sta_faeces));
        try {
            for ($j=0; $j < count($all_faces); $j++) {
                $_sta=new FacesSta();
                $face=$all_faces[$j];
                $day=$face['years']. '-' ;
                if($face['months']<10){
                    $day.='0'.$face['months']. '-' ;
                }else{
                    $day.=$face['months']. '-' ;
                }
                if($face['days']<10){
                    $day.='0'.$face['days'];
                }else{
                    $day.=$face['days'];
                }
                Log::error($day);
                if(!in_array($day,$lists)&&$day!=date('Y-m-d')){
                    $temp=[];
                    $temp['sta_date'] =$day;
                    $temp['faces_num'] = $face['count'];
                    $temp['photo_num'] =0;
                    for ($i = 0; $i < count($sta_faeces); $i++) {
                        if ($face['years'] == $sta_faeces[$i]['years']
                            && $face['months'] == $sta_faeces[$i]['months']
                            && $face['days'] == $sta_faeces[$i]['days']) {
                            $temp['photo_num'] = $sta_faeces[$i]['count'];
                            //unset($sta_faeces[$i]);
                            break;
                        }
                    }
                    $last_data=$_sta->order('id desc')->find();
                    if(!$last_data) {
                        $temp['before_faces_num']=$temp['faces_num'];
                        $temp['before_photo_num']=$temp['photo_num'];
                    }else {
                        $temp['before_faces_num']=$last_data['before_faces_num']+$temp['faces_num'];
                        $temp['before_photo_num']=$last_data['before_photo_num']+$temp['photo_num'];
                    }
                    Log::error('xxx:'.json_encode($temp));
                    $_sta->save($temp);
                    $lists[]=$day;
                }
            }
        }catch (\Exception $e){
            Log::error($e->getMessage());
            Log::error($e->getTraceAsString());
        }
    }

    public function fix(){
        die();
        $_face=new \app\model\Faces();
        $lists=$_face->where('photo_id','>',0)->whereNull('scores')->whereBetweenTime('create_time','2024-11-14 00:00:00','2024-11-15 00:00:00')->field('id,scores,photo_id')->select();
        //echo $_face->getLastSql();
        foreach($lists as $k=>$v){
            $feature=FacesFeature::find($v['id']);
            $photo=\app\model\AlbumPhoto::find($v['photo_id']);
            $_cal=new CalFeature();
            $a=$_cal->compare_feature_str($feature['feature'],$photo['feature']);
            $v->scores=$a;
            $v->save();
        }
    }

    public function fix1() {
        return false;
        //$lists=$_face->where('photo_id','>',10000)->whereBetweenTime('create_time','2024-8-14 00:00:00','2024-11-15 00:00:00')->field('id,scores,photo_id,mqtt_user_id,mqtt_user_scores')->select();
        //echo $_face->getLastSql();
        $lists=Db::query("SELECT `id`,`scores`,`photo_id`,`mqtt_user_id`,`mqtt_user_scores` FROM `tp_faces` WHERE `photo_id` > 10000 AND `create_time` BETWEEN '2024-08-14 00:00:00' AND '2024-11-15 00:00:00'");
        foreach($lists as $k=>$v){
            $_face=new \app\model\Faces();
            $_album_photo=new AlbumPhoto();
            $feature=FacesFeature::find($v['id']);

            $photo_res=$_album_photo->compare_face_feature($feature['feature'],111222111);
            $info=$_face->find($v['id']);
            $info['photo_id']='';
            $info['scores']='';
            if($photo_res){
                $info['photo_id']=$photo_res['id'];
                $info['scores']=$photo_res['score'];
            }
            $info['mqtt_user_id']=$v['photo_id'];
            $info['mqtt_user_scores']=$v['scores'];
            $info->save();
        }
    }

    /**
     * 归档face表的photo_id字段
     * @return void
     */
    public function save_face_photo_id($id=0) {
        $_face=new \app\model\Faces();
        $_face->save_face_photo_id($id);
    }

    /**
     * 删除face表不记录人员名单
     * @return void
     */
    public function delete_not_record() {
        $_face=new \app\model\Faces();
        $_face->delete_not_record();
    }

    /**
     * 更新album_photo表中的show_num
     * @return void
     */
    public function update_show_num(){
        Db::execute("update tp_album_photo p left join tp_album_people p1 on p.people_id=p1.id set p.show_num=p1.show_num where p.people_id>0");
    }



    public function test() {
        //es使用
        $data=[
            'id'=>1105702,
            'device_id'=>'51100049001197000705',
            'device_name'=>'西浦观邸正门入口',
            'file_path'=>'/mnt/public/user-capture-photos//51100049001197000705/202304/30/',
            'create_time'=>'2023-04-30 07:06:19'
        ];
        Elastic::client()->index([
            'index'=>'faces',
            'id'=>'1105702',
            'body'=>$data
        ]);

        $res=Elastic::client()->get([
            'index'=>'faces',
            'id'=>'1105702'
        ]);
        var_dump($res);

        /*$_face=new \app\model\Faces();
        $lists=$_face->where('feature_status',1)->limit(1000)->column('id,feature');
        $str='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';
        $_calFeature=new CalFeature();
        $times=0;
        $i=0;
        foreach ($lists as $list){
            if(!isset($list['feature'])){
                continue;
            }
            $i++;
            $time=microtime(true);
            try {
                $_calFeature->compare_feature_str($str,$list['feature']);
            }catch (\Exception $e){
                Log::info($list['id'].'error');
            }

            $res=microtime(true)-$time;
            Log::info("res:".$res);
            $times+=$res;
        }
        Log::info($i."res_ave:".$times/$i);*/
    }


}